using System;
using System.Collections.Generic;
using System.Text;
namespace Decision.BusinessLayer
{
	public class DCS_AMPHURCriteria
	{

		#region InnerClass
		public enum DCS_AMPHURCriteriaFields
		{
			START_VOTE_DATE,
			END_VOTE_DATE,
			START_RESULT_DATE,
			END_RESULT_DATE,
			START_SIGN_DATE,
			END_SIGN_DATE,
			MASTER_ID,
			PageNum,
			PageSize,
			PROVINCE_ID,
			SortName,
			SortDirection,
			Field,
			Value,
			TERM_NO,
			NOTICE,
			VOTE_TYPE_ID
		}
		#endregion

		#region Data Members

			DateTime? _sTART_VOTE_DATE;
			DateTime? _eND_VOTE_DATE;
			DateTime? _sTART_RESULT_DATE;
			DateTime? _eND_RESULT_DATE;
			DateTime? _sTART_SIGN_DATE;
			DateTime? _eND_SIGN_DATE;
			int? _mASTER_ID;
			int? _pageNum;
			int? _pageSize;
			int? _pROVINCE_ID;
			string _sortName;
			string _sortDirection;
			string _field;
			string _value;
			string _tERM_NO;
			string _nOTICE;
			string _vOTE_TYPE_ID;

		#endregion

		#region Properties

		public DateTime?  START_VOTE_DATE
		{
			 get { return _sTART_VOTE_DATE; }
			 set
			 {
				 if (_sTART_VOTE_DATE != value)
				 {
					_sTART_VOTE_DATE = value;
					 PropertyHasChanged("START_VOTE_DATE");
				 }
			 }
		}

		public DateTime?  END_VOTE_DATE
		{
			 get { return _eND_VOTE_DATE; }
			 set
			 {
				 if (_eND_VOTE_DATE != value)
				 {
					_eND_VOTE_DATE = value;
					 PropertyHasChanged("END_VOTE_DATE");
				 }
			 }
		}

		public DateTime?  START_RESULT_DATE
		{
			 get { return _sTART_RESULT_DATE; }
			 set
			 {
				 if (_sTART_RESULT_DATE != value)
				 {
					_sTART_RESULT_DATE = value;
					 PropertyHasChanged("START_RESULT_DATE");
				 }
			 }
		}

		public DateTime?  END_RESULT_DATE
		{
			 get { return _eND_RESULT_DATE; }
			 set
			 {
				 if (_eND_RESULT_DATE != value)
				 {
					_eND_RESULT_DATE = value;
					 PropertyHasChanged("END_RESULT_DATE");
				 }
			 }
		}

		public DateTime?  START_SIGN_DATE
		{
			 get { return _sTART_SIGN_DATE; }
			 set
			 {
				 if (_sTART_SIGN_DATE != value)
				 {
					_sTART_SIGN_DATE = value;
					 PropertyHasChanged("START_SIGN_DATE");
				 }
			 }
		}

		public DateTime?  END_SIGN_DATE
		{
			 get { return _eND_SIGN_DATE; }
			 set
			 {
				 if (_eND_SIGN_DATE != value)
				 {
					_eND_SIGN_DATE = value;
					 PropertyHasChanged("END_SIGN_DATE");
				 }
			 }
		}

		public int?  MASTER_ID
		{
			 get { return _mASTER_ID; }
			 set
			 {
				 if (_mASTER_ID != value)
				 {
					_mASTER_ID = value;
					 PropertyHasChanged("MASTER_ID");
				 }
			 }
		}

		public int?  PageNum
		{
			 get { return _pageNum; }
			 set
			 {
				 if (_pageNum != value)
				 {
					_pageNum = value;
					 PropertyHasChanged("PageNum");
				 }
			 }
		}

		public int?  PageSize
		{
			 get { return _pageSize; }
			 set
			 {
				 if (_pageSize != value)
				 {
					_pageSize = value;
					 PropertyHasChanged("PageSize");
				 }
			 }
		}

		public int?  PROVINCE_ID
		{
			 get { return _pROVINCE_ID; }
			 set
			 {
				 if (_pROVINCE_ID != value)
				 {
					_pROVINCE_ID = value;
					 PropertyHasChanged("PROVINCE_ID");
				 }
			 }
		}

		public string  SortName
		{
			 get { return _sortName; }
			 set
			 {
				 if (_sortName != value)
				 {
					_sortName = value;
					 PropertyHasChanged("SortName");
				 }
			 }
		}

		public string  SortDirection
		{
			 get { return _sortDirection; }
			 set
			 {
				 if (_sortDirection != value)
				 {
					_sortDirection = value;
					 PropertyHasChanged("SortDirection");
				 }
			 }
		}

		public string  Field
		{
			 get { return _field; }
			 set
			 {
				 if (_field != value)
				 {
					_field = value;
					 PropertyHasChanged("Field");
				 }
			 }
		}

		public string  Value
		{
			 get { return _value; }
			 set
			 {
				 if (_value != value)
				 {
					_value = value;
					 PropertyHasChanged("Value");
				 }
			 }
		}

		public string  TERM_NO
		{
			 get { return _tERM_NO; }
			 set
			 {
				 if (_tERM_NO != value)
				 {
					_tERM_NO = value;
					 PropertyHasChanged("TERM_NO");
				 }
			 }
		}

		public string  NOTICE
		{
			 get { return _nOTICE; }
			 set
			 {
				 if (_nOTICE != value)
				 {
					_nOTICE = value;
					 PropertyHasChanged("NOTICE");
				 }
			 }
		}

		public string  VOTE_TYPE_ID
		{
			 get { return _vOTE_TYPE_ID; }
			 set
			 {
				 if (_vOTE_TYPE_ID != value)
				 {
					_vOTE_TYPE_ID = value;
					 PropertyHasChanged("VOTE_TYPE_ID");
				 }
			 }
		}


		#endregion

		#region not support PropertyChangeEvent

		protected virtual void PropertyHasChanged(string propertyName)
		{
			return;
		}

		#endregion
/********** not support Validation
		#region Validation

		internal override void AddValidationRules()
		{
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("SortName", "SortName",150));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("SortDirection", "SortDirection",5));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("Field", "Field",150));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("Value", "Value",150));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("TERM_NO", "TERM_NO",150));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("NOTICE", "NOTICE",50));
			ValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength("VOTE_TYPE_ID", "VOTE_TYPE_ID",50));
		}

		#endregion
********/

	}
}
